#ifndef MDX2_TEXTURE_H_
#define MDX2_TEXTURE_H_

#include <cstdint>
#include "MDX2_Animation.h"

// Flags
#define FL_TEX_WRAP_X       0x01
#define FL_TEX_WRAP_Y       0x02

// Texture types
#define TYPE_HARDCODED      0
#define TYPE_BODY           1
#define TYPE_ITEM           2
#define TYPE_UNKNOWN3       3
#define TYPE_UNKNOWN4       4
#define TYPE_UNKNOWN5       5
#define TYPE_HAIRBEARD      6
#define TYPE_UNKNOWN7       7
#define TYPE_TAURENFUR      8
#define TYPE_UNKNOWN9       9
#define TYPE_UNKNOWN10      10
#define TYPE_CREATURESKIN1  11
#define TYPE_CREATURESKIN2  12
#define TYPE_CREATURESKIN3  13
#define TYPE_ICON           14

// Description: Defines the textures
// Count:  MDX2_Header->nTextures
// Offset: MDX2_Header->ofsTextures
// Lookup: TexLookup, TexReplace
struct MDX2_Texture
{
    uint32_t Type;
    uint32_t Flags;
    uint32_t lenFilename;
    uint32_t ofsFilename;
};

// Description: Defines colors
// Count:  MDX2_Header->nColors
// Offset: MDX2_Header->ofsColors
struct MDX2_Color
{
    MDX2_ABlock ColorValues;
    MDX2_ABlock Opacity;
};

// Description: Defines transparency
// Count:  MDX2_Header->nTransparency
// Offset: MDX2_Header->ofsTransparency
// Lookup: TransLookup
struct MDX2_Transparency
{
    MDX2_ABlock Opacity;
};

#endif // MDX2_TEXTURE_H_